import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import dts from 'vite-plugin-dts';

// https://vite.dev/config/
export default defineConfig({
  plugins: [
    vue({
      template: {
        compilerOptions: {
          isCustomElement: (tag) => tag.includes('-')
        }
      }
    }),
    dts({
      // 指定使用的 tsconfig.json 文件
      tsconfigPath: './tsconfig.json',
      // 是否将 .vue 文件生成 .d.ts 文件
      insertTypesEntry: true,
      // 指定类型声明文件的输出目录
      outDir: 'dist/types',
      // 是否生成类型声明文件的源码映射
      copyDtsFiles: true,
      // 是否生成静态导入的类型声明文件
      staticImport: true,
    }),
  ],
  build: {
    rollupOptions: {
      input: {
        "components/button": './src/components/button/index.ts',
        "components/tag": './src/components/tag/index.ts',
      },
      output: {
        format: 'esm',
        dir: 'dist',
        entryFileNames: "js/[name].js",
        chunkFileNames: "js/deps/[name].[hash].js",
        assetFileNames: 'js/assets/[name]-[hash][extname]',
        /** 分包配置 */
        manualChunks: {
          'vue': ['vue'],
        },
      }
    }
  }
})
